#include <iostream>
#include <vector>
#include <string>
#include <utility>
using namespace std;

class Solution2 {
public:
    vector<int> productExceptSelf(vector<int>& nums)
    {
        int n = nums.size();
        vector<int> f(n), g(n);

        f[0] = g[n - 1] = 1;
        for (int i = 1; i < n; ++i)
            f[i] = f[i - 1] * nums[i - 1];
        for (int i = n - 2; i >= 0; --i)
            g[i] = g[i + 1] * nums[i + 1];

        vector<int> ret(n);
        for (int i = 0; i < n; ++i)
            ret[i] = f[i] * g[i];

        return ret;
    }
};

int main()
{
    int n, m, x, y;
    cin >> n >> m >> x >> y;

    vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
    vector<pair<int, int>> tmp(9);
    tmp.push_back({ x - 2,y - 1 });
    tmp.push_back({ x - 2,y + 1 });
    tmp.push_back({ x - 1,y - 2 });
    tmp.push_back({ x - 1,y + 2 });
    tmp.push_back({ x + 1,y - 2 });
    tmp.push_back({ x + 1,y + 2 });
    tmp.push_back({ x + 2,y - 1 });
    tmp.push_back({ x + 2,y + 1 });
    tmp.push_back({ x,y });
    for (int j = 0; j <= m; ++j)
        dp[0][j] = 1;
    for (int i = 0; i <= n; ++i)
        dp[i][0] = 1;

    for (int i = 1; i <= n; ++i)
    {
        for (int j = 1; j <= m; ++j)
        {
            dp[i][j] = 0;
            int flag = 0;
            for (auto& e : tmp)
            {
                if (e == make_pair(i, j))
                {
                    flag = 1;
                    break;
                }
            }
            if (flag == 1)
                continue;
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
        }
    }

    cout << dp[n][m] << endl;

    return 0;
}

class Solution {
public:
    bool isPd(string&& B)
    {
        string tmp = B;
        reverse(tmp.begin(), tmp.end());
        return B == tmp;
    }

    int getLongestPalindrome(string A) {
        int n = A.size();
        if (n <= 2)
            return n;
 
        for (int i = n - 1; i >= 2; --i)
        {
            int left = 0, right = i;
            while (right < n)
            {
                int ret = right - left + 1;
                if (isPd(A.substr(left, ret)))
                    return ret;
                ++right;
                ++left;
            }
        }
        return 0;
    }
};

int main1()
{
    cout << Solution().getLongestPalindrome(" ") << endl;

    return 0;
}